Arduino 使用 AT24C02 存储

您所在的位置:网站首页 arduino eeprom 字符串 Arduino 使用 AT24C02 存储

Arduino 使用 AT24C02 存储

2023-07-13 04:51| 来源: 网络整理| 查看: 265

通常情况下我们无需使用外部EEPROM 存储数据,因为 Arduino 本身有自带的。也许是因为这个原因我在网上搜索 Arduino 使用 AT24C02 的资料也很少。

最终在 https://github.com/tardate/Littl ... 4C02/BasicReadWrite 搜索到了一个例子。

先说连接方法:

元件引脚如下:

A0-A2 用于选择设备的地址,如果都为LOW,那么地址是 0x50

WP 是写保护,接HIGH 之后才能进行写入

/* EEPROM/AT24C02/BasicReadWrite Basic read/write operations to external EEPROM (AT24C02) with the Wire library Note: the addressing protocol used here is specific to AT24 models under 16k For info and circuit diagrams see https://github.com/tardate/Littl ... 4C02/BasicReadWrite */ #include #define DEVICE_ADDRESS 0x50 // must match AT24C02(A0,A1,A2) wiring #define MEMORY_ADDRESS 0 byte data; void setup() { Serial.begin(115200); Wire.begin(); data = load_or_init_byte(MEMORY_ADDRESS); Serial.print("Memory on startup: "); Serial.println(data, DEC); } void loop() { data++; store_byte(MEMORY_ADDRESS, data); Serial.print("Storing: "); Serial.println(data, DEC); Serial.print("*Stored: "); Serial.println(load_byte(MEMORY_ADDRESS), DEC); delay(1000); } byte load_or_init_byte(uint8_t eeaddress) { byte data = load_byte(eeaddress); if(data==0xFF) { data = 0; store_byte(eeaddress, data); } return data; } // store +data+ byte at +eeaddress+ void store_byte(uint8_t eeaddress, byte data) { Wire.beginTransmission(DEVICE_ADDRESS); Wire.write(eeaddress); Wire.write(data); Wire.endTransmission(); delay(20); } byte load_byte(uint8_t eeaddress) { byte data = 0xFF; Wire.beginTransmission(DEVICE_ADDRESS); Wire.write(eeaddress); Wire.endTransmission(); Wire.requestFrom(DEVICE_ADDRESS,1); if (Wire.available()) data = Wire.read(); return data; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3